home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 01 New Uploads / FORMAT.SDA / FORMAT.BIN (.txt) next >
Encoding:
Commodore BASIC  |  2019-04-13  |  5.0 KB  |  151 lines

  1. 10 Z=1:IFA=.THENA=1:D=PEEK(186):LOAD"FORMATML",D,1
  2. 15 POKE2053,65:POKE55,.:POKE56,160:CLR:DIMT(44):V=53248:W=V+1:SYS58648:PRINT
  3. 20 Z$=CHR$(.):PRINT"ENTER DEVICE NUMBER.":PRINT"(PRESS <RETURN> TO EXIT.)"
  4. 25 D=.:INPUTD:IFD=.THENEND
  5. 30 IFD<4ORD>30THENPRINT"[147]ILLEGAL DEVICE NUMBER":GOTO20
  6. 35 OPEN15,D,15:CLOSE15:IFSTTHENPRINT"[147]DEVICE";D;"[157] NOT PRESENT":GOTO20
  7. 40 OPEN15,D,15,"UJ":FORI=1TO2000:NEXT:INPUT#15,B$,A$,B$,B$:CLOSE15
  8. 45 IFRIGHT$(A$,4)<>"1541"THENPRINT"[147]NOT 1541 DRIVE":GOTO20
  9. 50 M$=CHR$(13):POKE2,D:PRINT"[147]"
  10. 55 PRINT"PRESS F TO FORMAT DISK":PRINT"PRESS T TO FORMAT ONE TRACK."
  11. 60 PRINT"PRESS W TO WRITE TO SECTOR.":PRINT"PRESS R TO READ FROM SECTOR."
  12. 65 PRINT"PRESS S TO SWAP SECTORS.":PRINT"PRESS I TO INITIALIZE DISK."
  13. 70 PRINT"PRESS E TO READ ERROR CHANNEL.":PRINT"PRESS C TO CLEAR PAGE 201."
  14. 75 PRINT"PRESS H FOR HEX DUMP OF PAGE 201.":PRINT"PRESS X TO EXIT."
  15. 80 GETA$:A=ASC(A$+Z$):ON-(A=73)-2*(A=69)-3*(A=13)-4*(A=67)GOTO250,350,450,998
  16. 85 ON-(A=83)-2*(A=84)-3*(A=87)-4*(A=82)-5*(A=70)GOTO120,200,300,400,500
  17. 90 ON-(A=88)-2*(A=72)GOTO997,999
  18. 95 GOTO80
  19. 100 OPEN15,D,15:INPUT#15,J$,O$,H$,N$:CLOSE15
  20. 110 PRINT"[147]";J$;", ";O$;",";H$;",";N$:RETURN
  21. 120 PRINT"[147]ENTER TRACK # (1 TO 44) OF FIRST BLOCK."
  22. 125 T=-1:INPUTT:IFT<.THEN50
  23. 130 IFT=.ORT>44THEN120
  24. 135 PRINT"ENTER SECTOR # OF FIRST BLOCK."
  25. 140 S=-1:INPUTS:IFS<.THEN120
  26. 145 IFS>20THEN135
  27. 150 IF(T>30)*(S>16)+(T>24)*(S>17)+(T>17)*(S>18)THEN135
  28. 155 POKE140,T:POKE141,S
  29. 160 PRINT"ENTER TRACK # (1 TO 44) OF SECOND BLOCK."
  30. 165 T=-1:INPUTT:IFT<.THEN120
  31. 170 IFT=.ORT>44THEN160
  32. 175 PRINT"ENTER SECTOR # OF SECOND BLOCK."
  33. 180 S=-1:INPUTS:IFS<.THEN160
  34. 185 IFS>20THEN175
  35. 190 IF(T>30)*(S>16)+(T>24)*(S>17)+(T>17)*(S>18)THEN175
  36. 195 POKE142,T:POKE143,S:SYS49158:GOSUB100:GOTO55
  37. 200 PRINT"[147]ENTER DISK ID (TWO CHARACTERS)."
  38. 205 INPUTA$:IFLEN(A$)<2THEN50
  39. 210 POKE49476,ASC(A$):POKE49480,ASC(MID$(A$,2))
  40. 215 PRINT"ENTER TRACK NUMBER (1 TO 44)."
  41. 220 INPUTT:IFT<1ORT>44THEN215
  42. 225 POKE49575,T:SYS49161:GOSUB100:GOTO55
  43. 250 OPEN15,D,15,"I":CLOSE15:GOSUB100:GOTO55
  44. 300 PRINT"[147]ENTER TRACK NUMBER (1 TO 44)."
  45. 305 T=-1:INPUTT:IFT<.THEN50
  46. 310 IFT=.ORT>44THEN300
  47. 315 PRINT"ENTER SECTOR NUMBER."
  48. 320 S=-1:INPUTS:IFS<.THEN300
  49. 325 IFS>20THEN315
  50. 330 IF(T>30)*(S>16)+(T>24)*(S>17)+(T>17)*(S>18)THEN315
  51. 335 POKE50641,T:POKE50645,S:SYS49167
  52. 350 GOSUB100:GOTO55
  53. 400 PRINT"[147]ENTER TRACK NUMBER (1 TO 44)."
  54. 405 T=-1:INPUTT:IFT<.THEN50
  55. 410 IFT=.ORT>44THEN400
  56. 415 PRINT"ENTER SECTOR NUMBER."
  57. 420 S=-1:INPUTS:IFS<.THEN400
  58. 425 IFS>20THEN415
  59. 430 IF(T>30)*(S>16)+(T>24)*(S>17)+(T>17)*(S>18)THEN415
  60. 435 POKE50120,T:POKE50124,S:SYS49164
  61. 440 PRINT"[147]";:SYS62913:GOTO55
  62. 450 PRINT"[147]":GOTO20
  63. 500 RESTORE:PRINT"[147][197]NTER DISK [201][196] (TWO-CHARACTERS MAXIMUM)."
  64. 505 INPUTA$:IFLEN(A$)<2THENPRINT"[142]":GOTO50
  65. 510 A=ASC(A$):POKE49183,A:POKE49787,A:A=ASC(MID$(A$,2)):POKE49187,A:POKE49791,A
  66. 515 Z=36:POKE2040,15:FORI=960TO1022:READY:POKEI,Y:NEXT:X=56:Y=74:POKEV+16,.
  67. 520 POKEV+39,15:POKEV+21,1:POKEV+23,.:POKEV+29,.:POKEV+27,.:POKEV,X:POKEW,Y
  68. 525 PRINT"[147]                 [212][210][193][195][203]":PRINT"    !            [163][163][163][163][163]"
  69. 530 PRINT"    ";:FORI=1TO11:GOSUB970:PRINTA$;:NEXT
  70. 535 PRINT"                                    "
  71. 540 PRINT"    ";:FORI=12TO22:GOSUB970:PRINTA$;:NEXT
  72. 545 PRINT"                                    "
  73. 550 PRINT"    ";:FORI=23TO33:GOSUB970:PRINTA$;:NEXT
  74. 555 PRINT"                                    "
  75. 560 PRINT"    ";:FORI=34TO44:GOSUB970:PRINTA$;:NEXT
  76. 565 PRINT"                                    ":
  77. 570 PRINT"[198]ORMATTED TRACKS ARE IN [210][197][214][197][210][211][197] [214][201][196][197][207][146]."
  78. 575 PRINT"[208]UT CURSOR ONTO DESIRED TRACK, USING"
  79. 580 PRINT"                 CURSOR CONTROL KEYS."
  80. 585 PRINT"[208]RESS <[211][208][193][195][197]> TO TOGGLE TRACK."
  81. 590 PRINT"[208]RESS A TO SELECT ALL TRACKS."
  82. 595 PRINT"[208]RESS N FOR NO TRACKS."
  83. 600 PRINT"[208]RESS <[210][197][212][213][210][206]> WHEN READY TO FORMAT.";
  84. 605 GETA$:IFA$="[145]"THENY=Y-16:GOTO650
  85. 610 IFA$=""THENY=Y+16:GOTO650
  86. 615 IFA$="[157]"THENX=X-24:GOTO650
  87. 620 IFA$=""THENX=X+24:GOTO650
  88. 625 IFA$="A"THENZ=45:GOTO525
  89. 630 IFA$="N"THENZ=.:GOTO525
  90. 635 IFA$=" "THEN695
  91. 640 IFA$=M$THEN705
  92. 645 GOTO605
  93. 650 IFX=32THENIFY=74THENX=56
  94. 655 IFX=320THENIFY=122THENX=296
  95. 660 IFX=320THENX=56:Y=Y+16
  96. 665 IFX=32THENX=296:Y=Y-16
  97. 670 IFY=138THENY=122
  98. 675 IFY=58THENY=74
  99. 680 IFX>255THENPOKEV+16,1
  100. 685 IFX<256THENPOKEV+16,.
  101. 690 POKEV,XAND255:POKEW,Y:GOTO605
  102. 695 Q=1148+5*(Y-74)+(X-56)/8:POKEQ,(PEEK(Q)+128)AND255
  103. 700 POKEQ+1,(PEEK(Q+1)+128)AND255:GOTO605
  104. 705 I=1:J=.:FORI=ITOI+10:T(I)=.:Q=1145+3*I:IF(PEEK(Q)AND128)THENT(I)=1:J=I
  105. 710 NEXT
  106. 715 FORI=ITOI+10:T(I)=.:Q=1192+3*I:IF(PEEK(Q)AND128)THENT(I)=1:J=I
  107. 720 NEXT
  108. 725 FORI=ITOI+10:T(I)=.:Q=1239+3*I:IF(PEEK(Q)AND128)THENT(I)=1:J=I
  109. 730 NEXT
  110. 735 FORI=ITOI+10:T(I)=.:Q=1286+3*I:IF(PEEK(Q)AND128)THENT(I)=1:J=I
  111. 740 NEXT
  112. 745 POKEV+21,0:PRINT"[147][201]F YOU PRESS F, THE DISK IN DEVICE";D
  113. 750 PRINT"WILL BE FORMATTED, ACCORDING TO THE"
  114. 755 PRINT"PRECEDING MAP.  [193]NY DATA ON THE DISK"
  115. 760 PRINT"WILL BE IRRETRIEVABLY LOST.  [212]HE DISK"
  116. 765 PRINT"SHOULD NOT BE WRITE-PROTECTED."
  117. 770 PRINT"[207]N THE OTHER HAND, YOU CAN PLAY IT"
  118. 775 PRINT"SAFE, BY PRESSING X TO EXIT."
  119. 780 GETA$:IFA$="F"THEN795
  120. 785 IFA$="X"THENPRINT"[142]":END
  121. 790 GOTO780
  122. 795 IFJ=.THEN825
  123. 800 PRINT"[147][207]NE MOMENT PLEASE...":POKE49329,T(1):SYS49152:IFPEEK(150)THEN830
  124. 805 IFJ=1THEN825
  125. 810 FORI=2TOJ:POKE49967,T(I):SYS49155:IFPEEK(150)THENI=45
  126. 815 NEXT:IFI=46THEN830
  127. 820 IFT(18)THENGOSUB835
  128. 825 GOSUB100
  129. 830 PRINT"[142]";:OPEN15,D,15,"I":CLOSE15:GOTO20
  130. 835 N$="":PRINT"[197]NTER DISKNAME.":INPUTN$:IFN$=""THENRETURN
  131. 840 OPEN15,D,15:OPEN9,D,9,"#":Y$=CHR$(1)
  132. 845 PRINT#15,"M-W";Y$;Y$;Y$;"A"
  133. 850 PRINT#15,"B-P";9;.
  134. 855 PRINT#9,"";Y$;"A";Z$
  135. 860 PRINT#15,"U2";9;.;18;.:PRINT#15,"N0:";N$:CLOSE15:CLOSE9:RETURN
  136. 900 DATA255,255,.,128,1,.,128,1,.
  137. 910 DATA128,1,.,128,1,.,128,1,.
  138. 920 DATA128,1,.,255,255,.,.,.,.
  139. 930 DATA.,.,.,.,.,.,.,.,.
  140. 940 DATA.,.,.,.,.,.,.,.,.
  141. 950 DATA.,.,.,.,.,.,.,.,.
  142. 960 DATA.,.,.,.,.,.,.,.,.
  143. 970 A$=MID$(STR$(I),2):IFLEN(A$)=1THENA$="0"+A$
  144. 980 IFI<ZTHENA$=""+A$+"[146]"
  145. 990 A$=A$+" ":RETURN
  146. 997 PRINT:END
  147. 998 SYS6946:GOTO50
  148. 999 PRINT"[147]";:SYS6956:PRINT"             [208]RESS <[210][197][212][213][210][206]>.[146]";
  149. 1000 GETA$:IFA$<>M$THEN1000
  150. 1010 PRINT"[142]":GOTO50
  151.